/**
 * @author zhangshuai
 * @version V1.0
 * @Project Java2_26
 * @Package PACKAGE_NAME
 * @Description:
 * @Date 2025/5/12 10:47
 */

public class Demo1 {
    /**
     *
     * @param args
     *
     * main方法是程序的入口
     */
    public static void main(String[] args) {
        //1.变量的声明    数据类型  变量名
            int a;

        //2.变量的定义，变量的初始化   数据类型  变量名  =  变量值      = 赋值
            int b = 10;

       //3.命名规范
       //1.标识符可以由字母、数字、下划线、$组成
       //2.不能以数字开头
       //3.不能是关键字
       //4.严格区分大小写
       //5.见名知意
       //6.变量名，方法名建议小驼峰命名法   首字母小写，后面每个单词首字母大写
        //7.类名建议大驼峰命名法  每个单词首字母大写


        int minAgeAndHeight = 18;
        int maxAgeAndHeight = 100;
        int c = 10;


        byte d = 12;
        short e = 10;
        long f = 2147483648L;
        float g = 100.0f;
        double h = 10;
        char i = '中';//字符类型只能是一个字符，可以是一个字母，数字，中文，特殊字符，遵循unicode编码表
        boolean j = true;


        int int1 = 0b01101100;//2进制
        int i1 = 0125;//8进制
        int i2 = 0x123;//16进制
        //符号常量，final关键字修饰的变量，常量名称全部大写，值不能改变
        final double PI = 3.14;

        final String MY_IP = "192.168.100.1";

        //装箱：基本类型转换成包装类型
        //jdk1.5之后，实现了自动装箱
        //integer 缓存了-128~127的整数，在这个范围内，会直接从缓存中获取，不会new，提前创建好，放在静态常量池中。



        //手动装箱
        Integer integer1 = new Integer(100);
        Integer integer = Integer.valueOf(100);
        System.out.println(integer);
        System.out.println(integer1);
        //自动装箱
        int i5 = 100;
        int i6 = 100;
        Integer integer2 = 128;
        Integer integer3 = 128;
        // == 比较基本类型，比较的是值是否相等
        // == 比较引用类型，比较的是地址是否是同一个地址
        // equals 比较的是引用类型的值是否相等
        System.out.println(integer2 == integer3);//false
        System.out.println(integer2.equals(integer3));//true


        System.out.println(i5 == i6);//true

        //类型转化
        //小类型转大类型，自动类型转化，隐式类型转化
        long aaa = 10;

        //大类型转小类型，强制类型转化，显示类型转化
        //更多用于多态，大的类型强制转化为小的类型。

        int aaaa = (int)10L;
        byte bbb = (byte)150;



        //强制类型转化可能会丢失精度
        int i7 = 10;
        long l = i7;




        //拆箱：包装类型转换成基本类型
        //jdk1.5之后，实现了自动拆箱
        //手动拆箱
        int i3 = integer.intValue();
        System.out.println(i3);

        //自动拆箱
        int i4 = integer;

        System.out.println(integer.compareTo(20));


    }
}